package org.lestr.secuel.noyau.systemeLogique.effets;

import org.jdom.Element;

import org.lestr.secuel.m3ds.objets3D.Objet3D;

public class EffetObjet3DMouvement extends EffetAbstrait {

	
	// Définition de constantes
	private static final long serialVersionUID = 1L;

	
	// Déclaration des attributs
	private Objet3D objet;
	private float mouvement;
	private boolean glissant;
	
	
	/** Constructeur */
	public EffetObjet3DMouvement(){
		
		// Instanciation des attributs
		objet = null;
		mouvement = 0;
		glissant = false;
		
		// Défini le nom
		setTypeNom("Objet 3D - Mouvement");
		
	}// FIN Constructeur
	
	
	/** Applique l'effet */
	public void appliquer(){
		
		// Si un objet cible est défini
		if(objet != null){
			
			// TODO collisions glissantes
			
			objet.avancer(mouvement);
			
		}
		
	}// FIN appliquer
	
	
	/** Défini l'objet */
	public void defObjet(Objet3D objet){
		
		// Mémorise
		this.objet = objet;
		
	}// FIN defObjet
	
	
	/** Retourne l'objet */
	public Objet3D retObjet(){
		
		return objet;
		
	}// FIN retObjet
	
	
	// Accesseurs
	public float retMouvement() {
		return mouvement;
	}
	public void defMouvement(float mouvement) {
		this.mouvement = mouvement;
	}
	public boolean isGlissant() {
		return glissant;
	}
	public void setGlissant(boolean glissant) {
		this.glissant = glissant;
	}


	@Override
	public void charger(Element xml) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public Element compiler() {
		// TODO Auto-generated method stub
		return null;
	}
	

}// FIN Classe
